The invention relates to integrated circuits and more particularly intelligent power management of the integrated circuit.
The application and acceptance of portable electronic devices has emphasized the importance of controlling and or optimizing power consumption. Actually controlling power consumption may be satisfied by adjusting the body voltage (i.e. the voltage magnitude between body and source) applied to transistors in an integrated circuit (IC). By increasing the body to source voltage, transistors achieve a higher threshold voltage, consume less power but, on the other hand, provide lower performance and vice versa. It is also known that the IC can be broken down into several partitions or sectors and the body voltage controlled on a partition by partition basis, see in this regard copending application entitled xe2x80x9cLow Powering Apparatus for Automatic Reduction of Power in Active and Standby Modesxe2x80x9d by Dean et al filed Jul. 21, 1998, Ser. No. 09/120,211, ultimately issued as U.S. Pat. No. 6,011,383, and xe2x80x9cDevice and Method to Reduce Power Consumption in Integrated Semiconductor Devices Using a Lower Power Groggy Modexe2x80x9d, Bertin et al, filed on Sep. 24, 1998, Ser. No. 09/159,861, ultimately issued as U.S. Pat. No. 6,097,243, and xe2x80x9cASIC Low Power Activity Detector to Change Threshold Voltagexe2x80x9d, Dean et al, U.S. Ser. No. 09/159,898, filed on Sep. 24, 1998, and ultimately issued as U.S. Pat. No. 6,097,241. The disclosures of these applications are incorporated herein by reference.
Notwithstanding the foregoing, the art lacks a technology to allow optimizing power management in light of the actual repertoire of instructions applied to a partitioned integrated circuit.
The present invention provides an integrated circuit in which power is managed intelligently relative to the demands placed on the integrated circuit. In order to implement the foregoing the integrated circuit is designed with discrete functional units, each dedicated to a particular function or functions where each of the functional units has an independently controllable body voltage or threshold voltage (Vt). Consequently, each of the functional units can be operated at one of plural power levels depending on the body or threshold voltage applied thereto and independent of other functional units. Since the functional units have discrete functions, it is possible to correlate specific software instructions with one or a set of functional units. Execution of the instruction at a high rate will require the correlated functional units to be in a high power state, other functional units, i.e. those not correlated with the instruction, need not be in the high power state.
For example, assume the IC had functional units dedicated to floating point arithmetic functions and a modem operation and the application program or program segment being executed involved a remote file transfer but no floating point operations. One could optimize the performance, that is reduce power consumption but maximize speed of the IC, by reducing the power consumed by the floating point arithmetic functional unit(s) to a minimum and raising the power consumption of the modem-related unit(s). The raising of the power level in the modem-related units is justified by the increase in performance while the power savings on the floating point arithmetic functional unit(s) is obtained at no cost since the absence of floating point arithmetic operations means the performance of that functional unit or units is of no consequence to the execution of the application or program segment.
In general it is an object of the invention to control the power consumption of various functional units so as to present functional units in a high power state when instructions requiring their operation are to be executed and concomitantly to minimize power wasted on functional units which are not involved in current instructions. This may be effected by powering up a functional unit which is called on and powering down that unit thereafter.
In connection with one embodiment of the invention, an application, i.e. a series of instructions to be executed, is recompiled or modified so as to add to the application one or more power control instructions. The power control instructions each may be addressed so as to indicate to which of the functional unit or units that power control instruction applies. The intent is that the power control instructions, after being added to the instruction stream, are stored along with the preexisting instructions so that when the program containing the instructions is executed, the power control instructions will optimize the power status of the plural functional units. More particularly, the functional units which are required for execution of a particular instruction should be in an appropriate power state, that is a high power state at the time the instruction will be executed. Other functional units, which are not required for execution of the particular instruction, need not be in a high power state. In order to add the appropriate power control instructions, an analysis function analyzes the instructions contained in the application to identify correlated functional units. The analysis unit will assume that on initialization all functional units will be in their lowest power state.
The analysis function identifies the population of functional units and related parameters, such as the time required to transition the unit from a low to a higher power state. Thereafter the analysis function correlates the instructions in the user application or program with the various functional units. With the result of this correlation the analysis function can determine which functional units are required to be in a higher power state for each of the instructions in the application. Then the analysis function selects a unit and, for each unit performs the following.
First, a determination is made regarding whether it is possible to determine which code segment(s) in the application exclusively use the unit, where a code segment is defined to have one and only entrance and exit. If such code segment(s) can be identified, then we can be assured that the instruction sequence which eventuates in use of the unit is known. This is in contrast to more complex instruction sequencing as in the case of branch operations. Where exclusive use of the unit can be determined the analysis function can insert a power up and power down instruction, addressed to the unit being processed in a location of the instruction sequence to bracket the segment. That is the power up instruction is placed at the entrance to the segment and a power down instruction is placed at the termination of the segment. If on the other hand it is not possible to determine one or more code segment which exclusively uses the unit then it is necessary to determine if the unit is ever used in the application. If the unit is never used then it can remain in a low power state and it is placed on an always off list. If the unit is ever used, then it is placed on an always on list.
After each unit is processed in this way, there are two terminal functions that are necessary. In a first of the terminal functions, a power down power control instruction is placed in the beginning of the application and addressed to each unit on the always off list and a power up power control instruction is placed in the beginning of the application and addressed to each always on unit. In the second of the terminal instructions a power down power control instruction is placed at the end of the application and addressed to each unit in the IC.
By appropriately inserting the power control instructions in the ordered sequence of instructions of the application as described, a modified ordered list or sequence of instructions is produced by the analysis function. This modified ordered list is then stored so that the integrated circuit can later execute the instructions of the modified ordered list when they are extracted from storage.
Accordingly, the invention provides a method of operating a programmable integrated circuit having plural functional units each operable at plural power levels, the integrated circuit including a functional unit power control unit responsive to power control instructions for altering the power status of selected one or more of said functional units, said method comprising:
storing plural instructions, said instructions including power control instructions, at least one of the stored power control instructions including data identifying a specific one of the functional units,
extracting said stored instructions in a sequence,
examining each extracted instruction to determine if it is a power control instruction, and
changing the power status of at least the specific one of the functional units in response to the power control instruction.
The invention also provides an integrated circuit designed to use functional unit power control comprising:
plural functional units each operable at plural power levels, different ones of the power levels corresponding to different execution speeds of the functional units,
a decode unit for receiving and decoding an addressed functional unit power control instruction, and
means for changing a power level for a functional unit in response to said power control instruction.
In respect of another aspect, the invention provides, in an integrated circuit having plural functional units, each functional unit operable at plural power levels, the integrated circuit including a functional unit power control responsive to power control instructions for altering the power status of one or more of said functional units, a method of modifying the sequence of instructions to add power control instructions for controlling the power status of the functional units, the method comprising:
selecting an unprocessed unit,
identifying a program segment which employs said unprocessed unit to the exclusion of other program segments, and
inserting at least one power control instruction addressed to the unit for the determined program segment.
Still other objects and advantages of the present invention will become readily apparent by those skilled in the art from the following detailed description, which describes only the preferred embodiments of the invention, by way of illustration of the best mode contemplated of carrying out the invention. The invention is capable of other and different embodiments, and its several details are capable of modifications in various respects, without departing from the invention. Accordingly, the description is to be regarded as illustrative in nature and not as restrictive.